באקספלורר לדוגמא, אין פונקציית getElementsByClassName
רציתי לדעת מה נהוג:
לצור את המתודה כך:
function myFunction(className){
  //code...
}
if(!document.getElementsByClassName){
  docment.getElementsByClassName=myFunction
}
if(!Node.prototype.getEleemntsByClassName){
  Node.prototype.getElementsByClassName=myFunction
}


או כך, בלי להוסיף מתודות לאובייקטים של הדפדפן:
function myFunction(node,className){
  if(node==document&&document.getElementsByClassName){
    return document.getElementsByClassName(className);
  }
  else if(node.nodeType==1&&Node.prototype..getElementsByClassName){
    return node.getElementsByClassName(className);
  }
  else{
    ///code...
  }
}

2 תשובות

avatar ענה iiddaannyy ב 24 ליוני 2012 #

נהוג להשתמש בספריות מוכנות (דוגמת jquery).
אבל זה לא חשוב איך תעשה. הוספת המתודה לאובייקט document יכול להיות יותר נוח:

document.prototype.getElementsByClassName = function(className) {
    ...
};

avatar ענה phpguide_user ב 24 ליוני 2012 #

אני יודע, אבל אני מנסה ללמוד ללמוד JS ברמה גבוהה, ולהשתמש בJQלא מאפשר לך ללמוד דברים מסוימים, כמו השאלה הזו.

אני יודע שהשיטה השנייה יותר נוחה, פשוט חששתי שלא נהוג לערוך אובייקטים שהדפדפן יצר.
אבל אם זה בסדר וזה יותר קל, נראה שאין הרבה התלבטות...



תודה רבה!